Skip to main content

Kitchen Scenes

LW-BenchHub utilizes USD-based kitchen environments built on IsaacSim's robust simulation foundation.

USD-Based Scene Architecture

LW-BenchHub kitchen scenes are built using Universal Scene Description (USD) format, providing:

  • High-fidelity rendering with realistic lighting and materials
  • Fully interactive fixtures including cabinets, drawers, and appliances
  • Physics-accurate simulation through IsaacLab's physics engine
  • Optimized performance for large-scale parallel training

Scene Distribution System

Remote Scene Loading

LW-BenchHub implements a distributed scene management system that automatically handles scene acquisition:

# Scenes are automatically downloaded and cached
layout_id = 2 # Kitchen layout identifier
style_id = 5 # Visual style identifier
scene = f"robocasakitchen-{layout_id}-{style_id}"

Caching Architecture

  • Local cache: ~/.cache/lightwheel_sdk/floorplan/
  • Automatic versioning: Ensures scene consistency across updates
  • Incremental download: Only downloads new or updated scenes
  • ZIP compression: Efficient scene package distribution

Scene Configuration

Layouts

layout_idLayout TypeImage
1One wall
2One Wall w/ island
3L-Shaped
4L-Shaped w/ island
5Galley
6U-shaped
7U-shaped w/ island
8G-shaped
9G-shaped (large)
10Wraparound

Styles

style_idStyle TypeImage
1Coastal
2Farmhouse1
3Industrial
4Mediterranean
5Modern1
6Modern2
7Rustic
8Scandinavian
9Traditional
10Farmhouse2

Layout and Style System

Kitchen scenes are configured using a two-parameter system:

ParameterTypeDescription
layout_idintDefines the physical arrangement of fixtures and appliances
style_idintControls visual appearance, materials, and fixture variants

Scene Naming Convention

# Standard scene naming format
scene_name = f"robocasakitchen-{layout_id}-{style_id}"

# Examples
"robocasakitchen-1-8" # Layout 1, Style 8
"robocasakitchen-2-5" # Layout 2, Style 5

Technical Implementation

FloorplanLoader Class

The core scene management is handled by the FloorplanLoader:

from lw_benchhub.core.scenes.loader.floorplan import FloorplanLoader

# Initialize loader with remote server
loader = FloorplanLoader(host="scene_server_host")

# Asynchronous scene acquisition
loader.acquire_usd(layout_id=2, style_id=5)
usd_path = loader.wait_for_result()

Scene Integration

class RobocasaKitchenEnvCfg(BaseSceneEnvCfg):
scene_name: str = "robocasakitchen-2-5"
layout_id: int = 2
style_id: int = 5

# Enable specific fixtures for tasks
enable_fixtures: List[str] = ["drawers", "cabinets"]

Fixture Management

Interactive Elements

LW-BenchHub scenes include fully functional kitchen fixtures:

  • Drawers: Top, middle, and bottom drawer configurations
  • Cabinet doors: Single and double door variants
  • Appliances: Oven, dishwasher, microwave, toaster oven
  • Small appliances: Electric kettle, coffee machine
  • Utilities: Sink, faucet, electrical outlets

Fixture State Management

# Fixtures support dynamic state control
drawer.open_door(env=env, min=0.90, max=1.0) # 90%-100% open
cab.set_door_state(min=0.0, max=0.0, env=env) # 100% close
electric_kettle.set_lid(env, lid_val=1.0) # 100% open

Performance Optimizations

Parallel Environment Support

  • Multi-environment scaling: Efficient scene replication for parallel training
  • Memory optimization: Shared scene assets across environment instances
  • GPU acceleration: Full IsaacLab GPU simulation pipeline support